package at.ac.tuwien.vpsbcm.spielzeugfabrik.alternativ.arbeiter;

import javax.jms.JMSException;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;

import at.ac.tuwien.vpsbcm.spielzeugfabrik.alternativ.communication.LokTopicQueueConnHandler;
import at.ac.tuwien.vpsbcm.spielzeugfabrik.alternativ.communication.ObjectListener;

public class Arbeiter implements Runnable {

    // private List<Lackierer> lackierer;
    // private List<Logistik> logistiker;
    // private List<Montage> montagearbeiter;

    private LokTopicQueueConnHandler lokTopicQueueConnHandler;
    protected TopicSession topicSession;
    protected TopicSubscriber topicSubscriber;
    public ObjectListener objectListener;
    
    protected LokTopicQueueConnHandler getLokTopicQueueConnHandler() {
    	return lokTopicQueueConnHandler;
    }
    
    public Arbeiter() throws JMSException {
        
        lokTopicQueueConnHandler = LokTopicQueueConnHandler.getInstance();
        topicSession = lokTopicQueueConnHandler.getConnection();
        topicSubscriber = lokTopicQueueConnHandler.getTopSubscriber();
        lokTopicQueueConnHandler.getTopicConnection().start();
        
        /**
         * Nachrichten über ObjectListener empfangen. Momentan zum testen werden Nachrichten
         * über Worker empfangen.
         */
//        objectListener = new ObjectListener();
//        topicSubscriber.setMessageListener(objectListener);
        
    }

    public static void main(String[] args) {
        try {
            
            Arbeiter arbeiter = new Arbeiter();
            Thread t = new Thread(arbeiter);
            t.start();
        } catch (JMSException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }

    public void run() {
//        System.out.println("To end program, enter Q or q, " + "then <return>");
//        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
//        char answer = '\0';
//        while (!((answer == 'q') || (answer == 'Q'))) {
//            try {
//                answer = (char) inputStreamReader.read();
//            } catch (IOException e) {
//                System.out.println("I/O exception: " + e.toString());
//            }
//        }
        
        
    }

	
}
